home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / feel0_89.lha / Feel / Src / iset.h < prev    next >
Text File  |  1993-07-12  |  2KB  |  116 lines

  1. /* Numbers for instruction set. 
  2.    Used by instruct.em and bytecodes.h
  3.    */
  4.  
  5. #define BC_NOP 0
  6.       
  7.       /* Globals  etc */
  8. #define BC_PUSH_GLOBAL 1 
  9. #define BC_SET_GLOBAL 2
  10.  
  11. #define BC_PUSH_SPECIAL 3
  12. #define BC_PUSH_STATIC  4
  13. #define BC_PUSH_FIXNUM 5
  14. #define BC_PUSH_SMALL_FIXNUM 6
  15. #define BC_SET_STATIC  7
  16.  
  17.       /* stack refs */
  18. #define BC_PUSH_NTH 8
  19. #define BC_PUSH_NTH_0    9 
  20. #define BC_PUSH_NTH_1   10
  21. #define BC_PUSH_NTH_2    11
  22. #define BC_PUSH_NTH_3    12
  23. #define BC_SET_NTH     13
  24.       
  25.       /* Stack abuse */
  26. #define BC_SLIDE_STACK         14
  27. #define BC_SLIDE_1         15
  28. #define BC_SWAP                       16
  29. #define BC_DROP         17
  30. #define BC_DROP_1         18
  31.       
  32.       /* env reference */
  33. #define BC_ENV_REF     19
  34. #define BC_SET_ENV     20
  35. #define BC_POP_ENV     21
  36. #define BC_MAKE_ENV     22
  37.  
  38.       /* object reference */
  39. #define BC_VREF     23
  40. #define BC_SET_VREF     24
  41.  
  42. #define BC_SLOT_REF     25
  43. #define BC_SLOT_REF_0    26
  44. #define BC_SLOT_REF_1    27
  45. #define BC_SET_SLOT     28
  46. #define BC_SET_SLOT_1     29
  47. #define BC_SET_TYPE     30
  48.  
  49.       /* Leaping merrily */
  50. #define BC_BRANCH     31
  51. #define BC_BRANCH_NIL     32
  52.  
  53.       /* Calling things */
  54. #define BC_APPLY_ARGS        63
  55. #define BC_APPLY_ANY         33
  56. #define BC_APPLY_BVF         34
  57. #define BC_APPLY_METHODS     35
  58. #define BC_PUSH_LABEL         36
  59. #define BC_APPLY_CFN        60      
  60. #define BC_APPLY_METHOD_LIST    61
  61. #define BC_APPLY_CFN2        62
  62.       /* and return */
  63. #define BC_RETURN     37
  64.  
  65. #define BC_EXIT     38
  66.  
  67. /* allocation */    
  68. #define BC_CONS         39
  69. #define BC_ALLOC_CLOSURE     40
  70. #define BC_PUSH_INT         41
  71. #define BC_ALLOC_EXT_CLOSURE     51 
  72.  
  73. /* Tests */
  74. #define BC_NULLP 42
  75. #define BC_EQP     43
  76. #define BC_CONSP 44
  77. #define BC_ARG_CHECK 45
  78.  
  79.  
  80. /* Reflection */
  81. #define BC_CONTEXT    46
  82. #define BC_ENSURE_STACK 47
  83.  
  84. /* Useful functions */
  85. #define BC_ASSQ 48
  86. #define BC_MEMQ 49
  87. #define BC_SCANQ 50
  88. /* Inline method list */
  89.  
  90. /* Arithmetic */
  91. #define METHOD_INT_ADD         0
  92. #define METHOD_INT_DIFF        1
  93. #define METHOD_INT_MULT        2
  94. #define METHOD_INT_DIV        3
  95. #define METHOD_INT_EQUAL    4
  96.  
  97. #define METHOD_SYMBOL_EQUAL    5
  98.  
  99. /* streams */
  100. #define METHOD_STREAM_STRING_WRITE 6
  101. #define METHOD_STREAM_READ     7
  102.  
  103. /* slots */
  104. #define METHOD_SLOT_REF_0     8
  105. #define METHOD_SLOT_REF_1     9
  106. #define METHOD_SLOT_REF_2     10
  107. #define METHOD_SLOT_REF_3     11
  108.  
  109. #define METHOD_SLOT_SET_0     12
  110. #define METHOD_SLOT_SET_1     13
  111. #define METHOD_SLOT_SET_2     14
  112. #define METHOD_SLOT_SET_3     15
  113.  
  114.  
  115.  
  116.